Verified trustworthy software systems.
نویسنده
چکیده
Modern society is faced with a fundamental problem: the reliability of complex, evolving software systems on which society critically depends cannot be guaranteed by the established, non-mathematical computer engineering techniques such as informal prose specification and ad hoc testing. The situation is worsening: modern companies are moving fast, leaving little time for code analysis and testing; the behaviour of concurrent and distributed programs cannot be adequately assessed using traditional testing methods; users of mobile applications often neglect to apply software fixes; and malicious users increasingly exploit even simple programming errors, causing major security disruptions. Building trustworthy, reliable software is becoming harder and harder to achieve, while new business and cybersecurity challenges make it of escalating critical importance. The challenge is to bring program specification and verification to the heart of the software design process. Most code validation is based on outdated ideas of trusting that the internal, unpublished procedures of a company are robust and the assumption that the developer is not malicious. High-grade industry players, such as aerospace companies, do use sophisticated internal processes and tools to establish some degree of trust in their code, which can then be certified by government bodies such as the UK National Cyber Security Centre. We should, however, be able to do better than this. Software should be judged on fundamental scientific principles, with proper answers to questions such as: ‘What does this software do and what does it not do?’; ‘Are the behaviours exhibited by the software the ones we want?’ and ‘How do we assess that the software does what it says it does?’. It should be possible to bring proper, mathematically rigorous, scientific method to our software development, in line with standard engineering practice. The specialist academic and industrial research community is ready to tackle this challenge: proof assistants are mature; symbolic testing and verification
منابع مشابه
Component-based hardware/software co-verification for building trustworthy embedded systems
We present a novel component-based approach to hardware/software co-verification of embedded systems using model checking. Embedded systems are pervasive and often mission-critical, therefore, they must be highly trustworthy. Trustworthy embedded systems require extensive verification. The close interactions between hardware and software of embedded systems demand co-verification. Due to their ...
متن کاملProvably trustworthy systems.
We present recent work on building and scaling trustworthy systems with formal, machine-checkable proof from the ground up, including the operating system kernel, at the level of binary machine code. We first give a brief overview of the seL4 microkernel verification and how it can be used to build verified systems. We then show two complementary techniques for scaling these methods to larger s...
متن کاملComponent - Based Hardware / Software Co - Verification for Building Trustworthy
We present a novel component-based approach to hardware/software co-verification of embedded systems using model checking. Embedded systems are pervasive and often mission-critical, therefore, they must be highly trustworthy. Trustworthy embedded systems require extensive verification. The close interactions between hardware and software of embedded systems demand co-verification. Due to their ...
متن کاملA Formal Component-based Software Engineering Approach for Developing Trustworthy Systems
A Formal Component-Based Software Engineering Approach for Developing Trustworthy Systems Mubarak Sami Mohammad, Ph.D. Concordia University, 2009 Software systems are increasingly becoming ubiquitous, affecting the way we experience the world. Embedded software systems, especially those used in smart devices, have become an essential constituent of the technological infrastructure of modern soc...
متن کاملThe Specification and Verified Decomposition of System Requirements Using CSP
An important principle of building trustworthy systems is to rigorously analyze the critical requirements early in the development process, even before starting system design. Existing proof methods for systems of communicating processes focus on the bottom-up composition of component-level specifications into system-level specifications. Trustworthy system development requires, instead, the to...
متن کاملSpecial issue on "Trustworthy Software Systems for the Digital Society"
Creating the digital society calls for all aspects of computing, software development, software systems engineering, and applications. To sustain it, however, the need for trustworthy software systems is of paramount importance. Foundations, methodologies, architectures, and mechanisms that support modeling, design, implementation, and evaluation of trustworthy software systems and applications...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Philosophical transactions. Series A, Mathematical, physical, and engineering sciences
دوره 375 2104 شماره
صفحات -
تاریخ انتشار 2017